home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / aminet / text / misc / nroffamiga.lha / tmac.lha / tmac.os < prev    next >
Text File  |  1992-05-26  |  14KB  |  923 lines

  1. .\" @(#)tmac.os 1.6 88/02/08 SMI; from UCB 4.2
  2. .ds // /usr/lib/ms/
  3. .    \" RT - reset (at new paragraph)
  4. .de RT
  5. .if !\\n(1T .BG
  6. .if !\\n(IK .if !\\n(IF .if !\\n(IX .if !\\n(BE .di
  7. .if \\n(TM .ls 2
  8. .ce 0
  9. .ul 0
  10. .if \\n(QP \{\
  11. .    ll +\\n(QIu
  12. .    in -\\n(QIu
  13. .    nr QP -1
  14. .\}
  15. .if \\n(NX<=1 .if \\n(AJ=0 .ll \\n(LLu
  16. .if \\n(IF=0 \{\
  17. .    ps \\n(PS
  18. .    if \\n(VS>=40 .vs \\n(VSu
  19. .    if \\n(VS<=39 .vs \\n(VSp
  20. .\}
  21. .if \\n(IP .in -\\n(I\\n(IRu
  22. .if \\n(IP=0 .nr I0 \\n(PIu
  23. .if \\n(IP .nr IP -1
  24. .ft 1
  25. .bd 1
  26. .TA
  27. .fi
  28. ..
  29. .    \" IZ - initialize (before text begins)
  30. .de IZ
  31. .nr FM 1i
  32. .nr YY -\\n(FMu
  33. .nr XX 0 1
  34. .nr IP 0
  35. .nr PI 5n
  36. .nr QI 5n
  37. .nr FI 2n
  38. .nr I0 \\n(PIu
  39. .if n .nr PD 1v
  40. .if t .nr PD 0.3v
  41. .nr PS 10
  42. .nr VS 12
  43. .ps \\n(PS
  44. .vs \\n(VSp
  45. .nr ML 3v
  46. .nr IR 0
  47. .nr TB 0
  48. .nr SJ \\n(.j
  49. .nr PO \\n(.o
  50. .nr LL 6i
  51. .ll \\n(LLu
  52. .lt 6i
  53. .ev 1
  54. .nr FL 5.5i
  55. .ll \\n(FLu
  56. .ps 8
  57. .vs 10p
  58. .ev
  59. .ds CH - \\\\n(PN -
  60. .if n .ds CF \\*(DY
  61. .wh 0 NP
  62. .wh -\\n(FMu FO
  63. .ch FO 16i
  64. .wh -\\n(FMu FX
  65. .ch FO -\\n(FMu
  66. .wh -\\n(FMu/2u BT
  67. ..
  68. .    \" TA - set default tabs
  69. .de TA
  70. .if n .ta 8n 16n 24n 32n 40n 48n 56n 64n 72n 80n
  71. .if t .ta 5n 10n 15n 20n 25n 30n 35n 40n 45n 50n 55n 60n 65n 70n 75n
  72. ..
  73. .    \" RP - released paper format
  74. .de RP
  75. .nr ST 2
  76. .if "\\$1"no" .nr ST 1
  77. .pn 0
  78. .br
  79. ..
  80. .    \" TL - source file for cover sheet
  81. .de TL
  82. .rn TL @T
  83. .so \*(//ms.cov
  84. .TL
  85. .rm @T
  86. ..
  87. .    \" TS - source file for tbl
  88. .de TS
  89. .rn TS @T
  90. .so \*(//ms.tbl
  91. .TS \\$1 \\$2
  92. .rm @T
  93. ..
  94. .    \" EQ - source file for eqn
  95. .de EQ
  96. .rn EQ @T
  97. .so \*(//ms.eqn
  98. .EQ \\$1 \\$2
  99. .rm @T
  100. ..
  101. .    \" ]- - source file for refer
  102. .de ]-
  103. .rn ]- @T
  104. .so \*(//ms.ref
  105. .]-
  106. .rm @T
  107. ..
  108. .    \" [< - for refer -s or -e
  109. .de ]<
  110. .rn ]< @T
  111. .so \*(//ms.ref
  112. .]<
  113. .rm @T
  114. ..
  115. .if n .ds Q \&"
  116. .if n .ds U \&"
  117. .if t .ds Q ``
  118. .if t .ds U ''
  119. .if n .ds - --
  120. .if t .ds - \(em
  121. .if \n(.V>19 .ds [. \f1[
  122. .if \n(.V<20 .ds [. \f1\s-2\v'-0.4m'
  123. .if \n(.V>19 .ds .] ]\fP
  124. .if \n(.V<20 .ds .] \v'0.4m'\s+2\fP
  125. .ds <. .
  126. .ds <, ,
  127. .    \" PP - regular paragraph
  128. .de PP
  129. .RT
  130. .ne 1.1
  131. .if \\n(1T .sp \\n(PDu
  132. .ti +\\n(PIu
  133. ..
  134. .    \" LP - left aligned paragraph
  135. .de LP
  136. .RT
  137. .ne 1.1
  138. .if \\n(1T .sp \\n(PDu
  139. .ti \\n(.iu
  140. ..
  141. .    \" IP - indented paragraph
  142. .de IP
  143. .RT
  144. .br
  145. .ne 2.1v
  146. .sp \\n(PDu
  147. .if !\\n(IP .nr IP +1
  148. .if \\n(.$-1 .nr I\\n(IR \\$2n
  149. .in +\\n(I\\n(IRu
  150. .ta \\n(I\\n(IRu
  151. .if \\n(.$>0 \{\
  152. .ti -\\n(I\\n(IRu
  153. \&\\$1\t\c
  154. .\}
  155. ..
  156. .    \" XP - exdented paragraph
  157. .de XP
  158. .RT
  159. .ne 1.1
  160. .if \\n(1T .sp \\n(PDu
  161. .if !\\n(IP .nr IP +1
  162. .in +\\n(I\\n(IRu
  163. .ti -\\n(I\\n(IRu
  164. ..
  165. .    \" QP - quote paragraph
  166. .de QP
  167. .ti \\n(.iu
  168. .RT
  169. .if \\n(1T .sp \\n(PDu
  170. .ne 1.1
  171. .nr QP 1
  172. .in +\\n(QIu
  173. .ll -\\n(QIu
  174. .ti \\n(.iu
  175. .if \\n(TM .ls 1
  176. ..
  177. .    \" SH - section header
  178. .de SH
  179. .ti \\n(.iu
  180. .RT
  181. .if \\n(1T .sp
  182. .if !\\n(1T .BG
  183. .RT
  184. .ne 3.1
  185. .ft 3
  186. .if n .ul 1000
  187. ..
  188. .    \" NH - source file for numbered header
  189. .de NH
  190. .rn NH @T
  191. .so \*(//ms.toc
  192. .NH \\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  193. .rm @T
  194. ..
  195. .    \" BG - begin (at first paragraph)
  196. .de BG
  197. .br
  198. .nr YE 1
  199. .di
  200. .ce 0
  201. .nr KI 0
  202. .hy 14
  203. .nr 1T 1
  204. .S\\n(ST
  205. .rm S2 TX AX WT MF RP
  206. .rm I1 I2 I3 I4 I5
  207. .de TL
  208. .ft 3
  209. .sp
  210. .if n .ul 100
  211. .ce 100
  212. .LG
  213. \\..
  214. .de AU
  215. .ft 2
  216. .if n .ul 0
  217. .ce 100
  218. .sp
  219. .NL
  220. \\..
  221. .de AI
  222. .ft 1
  223. .ce 100
  224. .if n .ul 0
  225. .if n .sp
  226. .if t .sp .5
  227. .NL
  228. \\..
  229. .RA
  230. .rm RA
  231. .rn FJ FS
  232. .rn FK FE
  233. .nf
  234. .ev 1
  235. .ps \\n(PS-2
  236. .vs \\n(.s+2p
  237. .ev
  238. .if \\n(KG=0 .nr FP 0 
  239. .nr KG 0 
  240. .if \\n(FP>0 \{\
  241. .    FS
  242. .    FG
  243. .    FE
  244. .\}
  245. .br
  246. .if \\n(TV>0 .if n .sp 2
  247. .if \\n(TV>0 .if t .sp 1
  248. .fi
  249. .ll \\n(LLu
  250. ..
  251. .    \" RA - redefine abstract macros
  252. .de RA
  253. .de AB
  254. .br
  255. .if !\\n(1T .BG
  256. .ce
  257. .sp
  258. .if \\n(.$=0 ABSTRACT
  259. .if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no" \\$1
  260. .if \\n(.$=0 .sp
  261. .if \\n(.$>0 .if !"\\$1"-" .if !"\\$1"no" .sp
  262. .sp
  263. .nr AJ 1
  264. .in +\\n(.lu/12u
  265. .ll -\\n(.lu/12u
  266. .RT
  267. .if \\n(TM .ls 1
  268. \\..
  269. .de AE
  270. .nr AJ 0
  271. .br
  272. .in 0
  273. .ll \\n(LLu
  274. .if \\n(VS>=40 .vs \\n(VSu
  275. .if \\n(VS<=39 .vs \\n(VSp
  276. .if \\n(TM .ls 2
  277. \\..
  278. ..
  279. .    \" DS - display with keep (L left, I indent, C center, B block)
  280. .de DS
  281. .KS
  282. .nf
  283. .\\$1D \\$2 \\$1
  284. .ft 1
  285. .ps \\n(PS
  286. .if \\n(VS>=40 .vs \\n(VSu
  287. .if \\n(VS<=39 .vs \\n(VSp
  288. ..
  289. .de D
  290. .ID \\$1
  291. ..
  292. .    \" ID - indented display with no keep
  293. .de ID
  294. .XD
  295. .if t .in +0.5i
  296. .if n .in +8
  297. .if \\n(.$ .if !"\\$1"I" .if !"\\$1"" \{\
  298. .    in \\n(OIu
  299. .    in +\\$1n
  300. .\}
  301. ..
  302. .    \" LD - left display with no keep
  303. .de LD
  304. .XD
  305. ..
  306. .    \" CD - centered display with no keep
  307. .de CD
  308. .XD
  309. .ce 1000
  310. ..
  311. .    \" XD - real display macro
  312. .de XD
  313. .nf
  314. .nr OI \\n(.i
  315. .if t .sp 0.5
  316. .if n .sp 1
  317. .if \\n(TM .ls 1
  318. ..
  319. .    \" DE - end display of any kind
  320. .de DE
  321. .ce 0
  322. .if \\n(BD>0 .DF
  323. .nr BD 0
  324. .in \\n(OIu
  325. .KE
  326. .if \\n(TM .ls 2
  327. .if t .sp 0.5
  328. .if n .sp 1
  329. .fi
  330. ..
  331. .    \" BD - block display: center entire block
  332. .de BD
  333. .XD
  334. .nr BD 1
  335. .nf
  336. .in \\n(OIu
  337. .di DD
  338. ..
  339. .    \" DF - finish block display
  340. .de DF
  341. .di
  342. .if \\n(dl>\\n(BD .nr BD \\n(dl
  343. .if \\n(BD<\\n(.l .in (\\n(.lu-\\n(BDu)/2u
  344. .nr EI \\n(.l-\\n(.i
  345. .ta \\n(EIuR
  346. .DD
  347. .in \\n(OIu
  348. ..
  349. .    \" KS - begin regular keep
  350. .de KS
  351. .nr KN \\n(.u
  352. .if \\n(IK=0 .if \\n(IF=0 .KQ
  353. .nr IK +1
  354. ..
  355. .    \" KQ - real keep processor
  356. .de KQ
  357. .br
  358. .nr KI \\n(.i
  359. .ev 2
  360. .TA
  361. .br
  362. .in \\n(KIu
  363. .ps \\n(PS
  364. .if \\n(VS>=40 .vs \\n(VSu
  365. .if \\n(VS<=39 .vs \\n(VSp
  366. .ll \\n(LLu
  367. .lt \\n(LTu
  368. .if \\n(NX>1 .ll \\n(CWu
  369. .if \\n(NX>1 .lt \\n(CWu
  370. .di KK
  371. .nr TB 0
  372. ..
  373. .    \" KF - begin floating keep
  374. .de KF
  375. .nr KN \\n(.u
  376. .if !\\n(IK .FQ
  377. .nr IK +1
  378. ..
  379. .    \" FQ - real floating keep processor
  380. .de FQ
  381. .nr KI \\n(.i
  382. .ev 2
  383. .TA
  384. .br
  385. .in \\n(KIu
  386. .ps \\n(PS
  387. .if \\n(VS>=40 .vs \\n(VSu
  388. .if \\n(VS<=39 .vs \\n(VSp
  389. .ll \\n(LLu
  390. .lt \\n(LTu
  391. .if \\n(NX>1 .ll \\n(CWu
  392. .if \\n(NX>1 .lt \\n(CWu
  393. .di KK
  394. .nr TB 1
  395. ..
  396. .    \" KE - end keep
  397. .de KE
  398. .if \\n(IK .if !\\n(IK-1 .if \\n(IF=0 .RQ
  399. .if \\n(IK .nr IK -1
  400. ..
  401. .    \" RQ - real keep release
  402. .de RQ
  403. .br
  404. .di
  405. .nr NF 0
  406. .if \\n(dn-\\n(.t .nr NF 1
  407. .if \\n(TC .nr NF 1
  408. .if \\n(NF .if !\\n(TB .sp 200
  409. .if !\\n(NF .if \\n(TB .nr TB 0
  410. .nf
  411. .rs
  412. .nr TC 5
  413. .in 0
  414. .ls 1
  415. .if \\n(TB=0 \{\
  416. .    ev
  417. .    br
  418. .    ev 2
  419. .    KK
  420. .\}
  421. .ls
  422. .ce 0
  423. .if \\n(TB=0 .rm KK
  424. .if \\n(TB .da KJ
  425. .if \\n(TB \!.KD \\n(dn
  426. .if \\n(TB .KK
  427. .if \\n(TB .di
  428. .nr TC \\n(TB
  429. .if \\n(KN .fi
  430. .in
  431. .ev
  432. ..
  433. .    \" KD - keep redivert
  434. .de KD
  435. .nr KM 0
  436. .if "\\n(.z"KJ" .nr KM 1
  437. .if \\n(KM>0 \!.KD \\$1
  438. .if \\n(KM=0 .if \\n(.t<\\$1 .di KJ
  439. ..
  440. .    \" EM - end macro (process leftover keep)
  441. .de EM
  442. .br
  443. .if \\n(TB=0 .if t .wh -1p CM
  444. .if \\n(TB \&\c
  445. .if \\n(TB 'bp
  446. .if \\n(TB .NP
  447. .if \\n(TB .ch CM 160
  448. ..
  449. .de XK
  450. .nr TD 1
  451. .nf
  452. .ls 1
  453. .in 0
  454. .rn KJ KL
  455. .KL
  456. .rm KL
  457. .if "\\n(.z"KJ" .di
  458. .nr TB 0
  459. .if "\\n(.z"KJ" .nr TB 1
  460. .br
  461. .in
  462. .ls
  463. .fi
  464. .nr TD 0
  465. ..
  466. .    \" NP - new page
  467. .de NP
  468. .if !\\n(LT .nr LT \\n(LLu
  469. .if \\n(FM+\\n(HM>=\\n(.p \{\
  470. .    tm Margins bigger than page length
  471. .    ab
  472. .\}
  473. .if t .CM
  474. .if \\n(HM=0 .nr HM 1i
  475. .po \\n(POu
  476. .nr PF \\n(.f
  477. .nr PX \\n(.s
  478. .ft 1
  479. .ps \\n(PS
  480. 'sp \\n(HMu/2u
  481. .PT
  482. 'sp |\\n(HMu
  483. .ps \\n(PX
  484. .ft \\n(PF
  485. .nr XX 0 1
  486. .nr YY 0-\\n(FMu
  487. .ch FO 16i
  488. .ch FX 17i
  489. .ch FO -\\n(FMu
  490. .ch FX \\n(.pu-\\n(FMu
  491. .if \\n(MF .FV
  492. .nr MF 0
  493. .mk
  494. .os
  495. .ev 1
  496. .if \\n(TD=0 .if \\n(TC<5  .XK
  497. .nr TC 0
  498. .ev
  499. .nr TQ \\n(.i
  500. .nr TK \\n(.u
  501. .if \\n(IT>0 \{\
  502. .    in 0
  503. .    nf
  504. .    TT
  505. .    in \\n(TQu
  506. .    if \\n(TK .fi
  507. .\}
  508. .ns
  509. .mk #T
  510. .if t .if \\n(.o+\\n(LL>7.54i .tm PO + LL wider than 7.54i
  511. ..
  512. .    \" PT - page titles
  513. .de PT
  514. .lt \\n(LTu
  515. .pc %
  516. .nr PN \\n%
  517. .nr PT \\n%
  518. .if \\n(P1 .nr PT 2
  519. .if \\n(PT>1 .if !\\n(EH .if !\\n(OH .tl '\\*(LH'\\*(CH'\\*(RH'
  520. .if \\n(PT>1 .if \\n(OH .if o .tl \\*(O1
  521. .if \\n(PT>1 .if \\n(EH .if e .tl \\*(E2
  522. .lt \\n(.lu
  523. ..
  524. .    \" OH - odd page header
  525. .de OH
  526. .nr OH 1
  527. .if !\\n(.$ .nr OH 0
  528. .ds O1 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  529. ..
  530. .    \" EH - even page header
  531. .de EH
  532. .nr EH 1
  533. .if !\\n(.$ .nr EH 0
  534. .ds E2 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  535. ..
  536. .    \" P1 - do PT on 1st page
  537. .de P1
  538. .nr P1 1
  539. ..
  540. .    \" FO - footer
  541. .de FO
  542. .rn FO FZ
  543. .if \\n(IT>0 .nr T. 1
  544. .if \\n(IT>0 .if \\n(FC=0  .T# 1
  545. .if \\n(IT>0 .br
  546. .nr FC +1
  547. .if \\n(NX<2 .nr WF 0
  548. .nr dn 0
  549. .if \\n(FC<=1 .if \\n(XX .XF
  550. .rn FZ FO
  551. .nr MF 0
  552. .if \\n(dn  .nr MF 1
  553. .if !\\n(WF .nr YY 0-\\n(FMu
  554. .if !\\n(WF .ch FO \\n(YYu
  555. .if !\\n(dn .nr WF 0
  556. .if \\n(FC<=1 .if \\n(XX=0 \{\
  557. .    if \\n(NX>1 .RC
  558. .    if \\n(NX<2 'bp
  559. .\}
  560. .nr FC -1
  561. .if \\n(ML>0 .ne \\n(MLu
  562. ..
  563. .    \" BT - bottom title
  564. .de BT
  565. .nr PF \\n(.f
  566. .nr PX \\n(.s
  567. .ft 1
  568. .ps \\n(PS
  569. .lt \\n(LTu
  570. .po \\n(POu
  571. .if \\n(TM .if \\n(CT \{\
  572. .    tl ''\\n(PN''
  573. .    nr CT 0
  574. .\}
  575. .if \\n% .if !\\n(EF .if !\\n(OF .tl '\\*(LF'\\*(CF'\\*(RF'
  576. .if \\n% .if \\n(OF .if o .tl \\*(O3
  577. .if \\n% .if \\n(EF .if e .tl \\*(E4
  578. .ft \\n(PF
  579. .ps \\n(PX
  580. ..
  581. .    \" OF - odd page footer
  582. .de OF
  583. .nr OF 1
  584. .if !\\n(.$ .nr OF 0
  585. .ds O3 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  586. ..
  587. .    \" EF - even page footer
  588. .de EF
  589. .nr EF 1
  590. .if !\\n(.$ .nr EF 0
  591. .ds E4 \\$1 \\$2 \\$3 \\$4 \\$5 \\$6 \\$7 \\$8 \\$9
  592. ..
  593. .    \" 2C - double column
  594. .de 2C
  595. .MC
  596. ..
  597. .    \" 1C - single column
  598. .de 1C
  599. .MC \\n(LLu
  600. .hy 14
  601. ..
  602. .    \" MC - multiple columns, arg is col width
  603. .de MC
  604. .nr L1 \\n(LL*7/15
  605. .if \\n(.$>0 .nr L1 \\$1n
  606. .nr NQ \\n(LL/\\n(L1
  607. .if \\n(NQ<1 .nr NQ 1
  608. .if \\n(NQ>2 .if (\\n(LL%\\n(L1)=0 .nr NQ -1
  609. .if !\\n(1T \{\
  610. .    BG
  611. .    if n .sp 4
  612. .    if t .sp 2
  613. .\}
  614. .if \\n(NX=0 .nr NX 1
  615. .if !\\n(NX=\\n(NQ \{\
  616. .    RT
  617. .    if \\n(NX>1 .bp
  618. .    mk
  619. .    nr NC 1
  620. .    po \\n(POu
  621. .\}
  622. .if \\n(NQ>1 .hy 12
  623. .nr NX \\n(NQ
  624. .nr CW \\n(L1
  625. .ll \\n(CWu
  626. .nr FL \\n(CWu*11u/12u
  627. .if \\n(NX>1 .nr GW (\\n(LL-(\\n(NX*\\n(CW))/(\\n(NX-1)
  628. .nr RO \\n(CW+\\n(GW
  629. .ns
  630. ..
  631. .de RC
  632. .if \\n(NC>=\\n(NX .C2
  633. .if \\n(NC<\\n(NX .C1
  634. .nr NC \\n(ND
  635. ..
  636. .de C1
  637. .rt
  638. .po +\\n(ROu
  639. .nr ND \\n(NC+1
  640. .nr XX 0 1
  641. .if \\n(MF .FV
  642. .ch FX \\n(.pu-\\n(FMu
  643. .ev 1
  644. .if \\n(TB .XK
  645. .nr TC 0
  646. .ev
  647. .nr TQ \\n(.i
  648. .if \\n(IT>0 .in 0
  649. .if \\n(IT>0 .TT
  650. .if \\n(IT>0 .in \\n(TQu
  651. .mk #T
  652. .ns
  653. ..
  654. .de C2
  655. .po \\n(POu
  656. 'bp
  657. .nr ND 1
  658. ..
  659. .    \" RS - right shift indent
  660. .de RS
  661. .nr IS \\n(IP
  662. .RT
  663. .nr IP \\n(IS
  664. .if \\n(IP>0 .in +\\n(I\\n(IRu
  665. .nr IR +1
  666. .nr I\\n(IR \\n(PIu
  667. .in +\\n(I\\n(IRu
  668. ..
  669. .    \" RE - retreat to the left
  670. .de RE
  671. .nr IS \\n(IP
  672. .RT
  673. .nr IP \\n(IS
  674. .if \\n(IR>0 .nr IR -1
  675. .if \\n(IP<=0 .in -\\n(I\\n(IRu
  676. ..
  677. .    \" CM - cut mark
  678. .de CM
  679. .po 0
  680. .lt 7.6i
  681. .ft 1
  682. .ps 10
  683. .vs 4p
  684. .tl '--''--'
  685. .po
  686. .vs
  687. .lt
  688. .ps
  689. .ft
  690. ..
  691. .    \" I - italic font
  692. .de I
  693. .nr PQ \\n(.f
  694. .if t .ft 2
  695. .if "\\$1"" .if n .ul 1000
  696. .if !"\\$1"" .if n .ul 1
  697. .if t .if !"\\$1"" \&\\$1\|\f\\n(PQ\\$2
  698. .if n .if \\n(.$=1 \&\\$1
  699. .if n .if \\n(.$>1 \&\\$1\c
  700. .if n .if \\n(.$>1 \&\\$2
  701. ..
  702. .    \" B - bold font
  703. .de B
  704. .nr PQ \\n(.f
  705. .if t .ft 3
  706. .if "\\$1"" .if n .ul 1000
  707. .if !"\\$1"" .if n .ul 1
  708. .if t .if !"\\$1"" \&\\$1\f\\n(PQ\\$2
  709. .if n .if \\n(.$=1 \&\\$1
  710. .if n .if \\n(.$>1 \&\\$1\c
  711. .if n .if \\n(.$>1 \&\\$2
  712. ..
  713. .    \" R - Roman font
  714. .de R
  715. .if n .ul 0
  716. .ft 1
  717. ..
  718. .    \" UL - underline in troff
  719. .de UL
  720. .if t \\$1\l'|0\(ul'\\$2
  721. .if n .I \\$1 \\$2
  722. ..
  723. .    \" SM - smaller size
  724. .de SM
  725. .ps -2
  726. ..
  727. .    \" LG - larger size
  728. .de LG
  729. .ps +2
  730. ..
  731. .    \" NL - normal size
  732. .de NL
  733. .ps \\n(PS
  734. ..
  735. .if \n(mo-0 .ds MO January
  736. .if \n(mo-1 .ds MO February
  737. .if \n(mo-2 .ds MO March
  738. .if \n(mo-3 .ds MO April
  739. .if \n(mo-4 .ds MO May
  740. .if \n(mo-5 .ds MO June
  741. .if \n(mo-6 .ds MO July
  742. .if \n(mo-7 .ds MO August
  743. .if \n(mo-8 .ds MO September
  744. .if \n(mo-9 .ds MO October
  745. .if \n(mo-10 .ds MO November
  746. .if \n(mo-11 .ds MO December
  747. .ds DY \*(MO \n(dy, 19\n(yr
  748. .IZ
  749. .rm IZ
  750. .em EM
  751. .    \" DA - force date
  752. .de DA
  753. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  754. .ds CF \\*(DY
  755. ..
  756. .    \" ND - no date or new date
  757. .de ND
  758. .if \\n(.$ .ds DY \\$1 \\$2 \\$3 \\$4
  759. .rm CF
  760. ..
  761. .    \" \** - automatically numbered footnote
  762. .nr * 0 1
  763. .ds * \\*([.\\n+*\\*(.]
  764. .    \" FJ - replaces FS after cover sheet
  765. .de FJ
  766. 'ce 0
  767. .di
  768. .ev 1
  769. .ll \\n(FLu
  770. .da FF
  771. .br
  772. .if \\n(IF>0 .tm Footnote within footnote is illegal
  773. .nr IF 1
  774. .if !\\n+(XX-1 .FA
  775. .if \\n(MF=0 .if \\n(.$=0 .if \\n*>0 .FP \\n*
  776. .if \\n(MF=0 .if \\n(.$>0 .FP \\$1 no
  777. ..
  778. .    \" FK - replaces FE after cover sheet
  779. .de FK
  780. .br
  781. .in 0
  782. .nr IF 0
  783. .di
  784. .ev
  785. .if !\\n(XX-1 .nr dn +\\n(.v
  786. .nr YY -\\n(dn
  787. .if \\n(NX=0 .nr WF 1
  788. .if \\n(dl>\\n(CW .nr WF 1
  789. .if (\\n(nl+\\n(.v)<=(\\n(.p+\\n(YY) .ch FO \\n(YYu
  790. .if (\\n(nl+\\n(.v)>(\\n(.p+\\n(YY) \{\
  791. .    if \\n(nl>(\\n(HM+1.5v) .ch FO \\n(nlu+\\n(.vu
  792. .    if \\n(nl+\\n(FM+1v>\\n(.p .ch FX \\n(.pu-\\n(FMu+2v
  793. .    if \\n(nl<=(\\n(HM+1.5v) .ch FO \\n(HMu+(4u*\\n(.vu)
  794. .\}
  795. ..
  796. .    \" FS - begin footnote (on cover)
  797. .de FS
  798. .ev 1
  799. .br
  800. .ll \\n(FLu
  801. .da FG
  802. .if \\n(.$=0 .if \\n*>0 .FP \\n*
  803. .if \\n(.$>0 .FP \\$1 no
  804. ..
  805. .    \" FE - end footnote (on cover)
  806. .de FE
  807. .br
  808. .di
  809. .nr FP \\n(dn
  810. .if \\n(1T=0 .nr KG 1
  811. .ev
  812. ..
  813. .    \" FA - print line before footnotes
  814. .de FA
  815. .in 0
  816. .if n _________________________
  817. .if t \l'1i'
  818. .br
  819. ..
  820. .    \" FP - footnote paragraph
  821. .de FP
  822. .sp \\n(PDu/2u
  823. .if \\n(FF<2 .ti \\n(FIu
  824. .if \\n(FF=3 \{\
  825. .    in \\n(FIu*2u
  826. .    ta \\n(FIu*2u
  827. .    ti 0
  828. .\}
  829. .if \\n(FF=0 \{\
  830. .    ie "\\$2"no" \\$1\0\c
  831. .    el \\*([.\\$1\\*(.]\0\c
  832. .\}
  833. .if \\n(FF>0 .if \\n(FF<3 \{\
  834. .    ie "\\$2"no" \\$1\0\c
  835. .    el \\$1.\0\c
  836. .\}
  837. .if \\n(FF=3 \{\
  838. .    ie "\\$2"no" \\$1\t\c
  839. .    el \\$1.\t\c
  840. .\}
  841. ..
  842. .    \" FV - call back leftover footnote from previous page
  843. .de FV
  844. .FS
  845. .nf
  846. .ls 1
  847. .FY
  848. .ls
  849. .fi
  850. .FE
  851. ..
  852. .    \" FX - divert leftover footnote for next page
  853. .de FX
  854. .if \\n(XX>0 .di FY
  855. .if \\n(XX>0 .ns
  856. ..
  857. .    \" XF - actually print footnote
  858. .de XF
  859. .if \\n(nlu+1v>(\\n(.pu-\\n(FMu) .ch FX \\n(nlu+1.9v
  860. .ev 1
  861. .nf
  862. .ls 1
  863. .FF
  864. .rm FF
  865. .nr XX 0 1
  866. .br
  867. .ls
  868. .di
  869. .fi
  870. .ev
  871. ..
  872. .    \" accent marks
  873. .ds ' \h'\w'e'u*4/10'\z\'\h'-\w'e'u*4/10'
  874. .ds ` \h'\w'e'u*4/10'\z\`\h'-\w'e'u*4/10'
  875. .ds : \v'-0.6m'\h'(1u-(\\n(.fu%2u))*0.13m+0.06m'\z.\h'0.2m'\z.\h'-((1u-(\\n(.fu%2u))*0.13m+0.26m)'\v'0.6m'
  876. .ds ^ \k:\h'-\\n(.fu+1u/2u*2u+\\n(.fu-1u*0.13m+0.06m'\z^\h'|\\n:u'
  877. .ds ~ \k:\h'-\\n(.fu+1u/2u*2u+\\n(.fu-1u*0.13m+0.06m'\z~\h'|\\n:u'
  878. .ds C \k:\h'+\w'e'u/4u'\v'-0.6m'\s6v\s0\v'0.6m'\h'|\\n:u'
  879. .ds , \k:\h'\w'c'u*0.4u'\z,\h'|\\n:u'
  880. .    \" AM - better accent marks
  881. .de AM
  882. .so \*(//ms.acc
  883. ..
  884. .    \" TM - thesis mode
  885. .de TM
  886. .so \*(//ms.ths
  887. ..
  888. .    \" BX - word in a box
  889. .de BX
  890. .if t \(br\|\\$1\|\(br\l'|0\(rn'\l'|0\(ul'
  891. .if n \(br\\kA\|\\$1\|\\kB\(br\v'-1v'\h'|\\nBu'\l'|\\nAu'\v'1v'\l'|\\nAu'
  892. ..
  893. .    \" B1 - source file for boxed text
  894. .de B1
  895. .rn B1 @T
  896. .so \*(//ms.tbl
  897. .B1 \\$1
  898. .rm @T
  899. ..
  900. .    \" XS - table of contents
  901. .de XS
  902. .rn XS @T
  903. .so \*(//ms.toc
  904. .XS \\$1 \\$2
  905. .rm @T
  906. ..
  907. .    \" IX - index words to stderr
  908. .de IX
  909. .tm \\$1\t\\$2\t\\$3\t\\$4\t\\$5 ... \\n(PN
  910. ..
  911. .    \" UX - UNIX macro
  912. .de UX
  913. .ie \\n(UX \s-1UNIX\s0\\$1
  914. .el \{\
  915. \s-1UNIX\s0\\$1\(dg
  916. .FS
  917. \(dg \s-1UNIX\s0 is a trademark of Bell Laboratories.
  918. .FE
  919. .nr UX 1
  920. .\}
  921. ..
  922. .rm //
  923.